Hermes Agent 完整配置教程
Hermes Agent 完整配置教程
来源:htmlDecode("及时体育")
原文链接:https://mp.weixin.qq.com/s/bh-qQcvQ2eOcOWcP7olGTw
tags: Hermes AI-Agent 配置教程 Nous-Research created: 2026-04-10
Hermes Agent 完整配置教程
Hermes Agent 是 Nous Research 开发的开源 AI 智能体框架,可在终端、消息平台(Telegram/Discord/Slack 等)和 IDE 中运行。支持任意 LLM 提供商(OpenRouter、Anthropic、OpenAI、本地模型等 18+ 提供商)。
安装与初始化
# 一键安装
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
# 交互式初始设置向导
hermes setup
# 查看健康状态
hermes doctor
# 启动交互聊天
hermes
目录结构
所有配置和文件都在 ~/.hermes/ 目录下:
~/.hermes/
├── config.yaml # 主配置文件(模型、终端、TTS、压缩等)
├── .env # API 密钥和敏感信息
├── auth.json # OAuth 凭证(Nous Portal 等)
├── SOUL.md # Agent 身份定义(系统提示词第一位)
├── memories/ # 持久记忆(MEMORY.md、USER.md)
├── skills/ # 已安装的技能
├── cron/ # 定时任务
├── sessions/ # 会话记录
└── logs/ # 日志(gateway.log、errors.log,自动脱敏)
Profiles 使用 ~/.hermes/profiles/<名称>/ 目录,结构相同。
配置文件详解 (config.yaml)
使用 hermes config edit 打开编辑,或用 hermes config set KEY VAL 设置。
配置优先级(从高到低)
.env 中的环境变量 config.yaml 中的显式配置 默认值
核心配置段
model — 模型与提供商
model:
default: "anthropic/claude-sonnet-4" # 默认模型
provider: "openrouter" # 提供商
base_url: "" # 自定义端点(优先于 provider)
api_key: "" # 自定义端点的 API Key
context_length: 0 # 0 = 自动检测
agent — Agent 行为
agent:
max_turns: 90 # 单次会话最大工具调用轮数
tool_use_enforcement: true # 强制使用工具
terminal — 终端后端
terminal:
backend: local # local | docker | ssh | modal | singularity | daytona
cwd: "" # 工作目录(默认当前目录)
timeout: 180 # 命令超时秒数
notify_on_complete_threshold: 60 # 超过此秒数的后台任务完成后通知
allowlist: [] # 允许的命令白名单
blocklist: [] # 阻止的命令黑名单
persistent_shell: true # 使用持久 shell(保留环境变量和状态)
** Docker 后端额外配置: **
terminal:
backend: docker
docker:
image: "nousresearch/hermes-agent:latest"
container_name: "hermes-agent"
auto_remove: false
volumes: [] # 挂载卷
network_mode: "" # 网络模式
credential_forwarding: true # 自动转发 Docker 凭证
** SSH 后端额外配置: **
terminal:
backend: ssh
ssh:
host: "" # SSH 主机
port: 22
user: ""
identity_file: "~/.ssh/id_rsa"
** Modal 后端额外配置: **
terminal:
backend: modal
modal:
image: "modal-labs/modal-python:3.11"
secret_names: [] # Modal secrets
timeout: 300
compression — 上下文压缩
compression:
enabled: true
threshold: 0.50 # 上下文使用率达到 50% 时触发
target_ratio: 0.20 # 压缩到原始大小的 20%
model: "" # 空 = 使用主模型,也可单独指定
provider: "" # 空 = 使用主提供商
三个参数如何配合: ** threshold ** :何时开始压缩 ** target_ratio ** :压缩到什么程度 threshold 越低、target_ratio 越小 = 压缩越激进
display — 显示设置
display:
skin: "default" # 主题皮肤
tool_progress: true # 显示工具执行进度
show_reasoning: false # 显示推理过程
show_cost: false # 显示成本
按平台单独覆盖进度显示:
display:
tool_progress:
telegram: false
discord: true
memory — 记忆系统
memory:
memory_enabled: true # 启用持久记忆
user_profile_enabled: true # 启用用户画像记忆
provider: "" # 空 = 内置记忆系统
# 可选: honcho, mem0, openviking, hindsight 等
security — 安全
security:
tirith_enabled: true # 启用 Tirith 安全检查
website_blocklist:
enabled: false
domains: # 阻止的域名
- "*.internal.company.com"
- "admin.example.com"
shared_files: # 外部规则文件
- "/etc/hermes/blocked-sites.txt"
approvals — 命令审批
approvals:
mode: manual # manual | smart | off
模式 说明 manual (默认) 执行危险命令前询问用户 smart 用辅助 LLM 自动判断风险,低风险自动通过 off 跳过所有安全检查(等同于 HERMES_YOLO_MODE=true )
checkpoints — 检查点
checkpoints:
enabled: true # 破坏性文件操作前自动快照
max_snapshots: 50 # 每个目录最多保留的检查点数
delegation — 子代理
delegation:
# model: "" # 覆盖子代理模型(空 = 继承父级)
# provider: "" # 覆盖子代理提供商
# base_url: "" # 直接指定 OpenAI 兼容端点
# api_key: "" # 端点的 API Key
优先级: delegation.base_url > delegation.provider > 继承父级
clarify — 澄清超时
clarify:
timeout: 120 # 等待用户澄清的秒数
smart_model_routing — 智能模型路由
smart_model_routing:
enabled: true
max_simple_chars: 160
max_simple_words: 28
cheap_model:
provider: openrouter
model: google/gemini-2.5-flash
短小简单的请求自动走便宜模型,复杂任务走主模型。
streaming — 流式输出
streaming:
enabled: true
gateway: true # 网关流式(Telegram/Discord/Slack)
cli: true # CLI 流式
human_delay — 人为延迟
human_delay:
enabled: false
min_seconds: 1
max_seconds: 5
让消息发送更自然,不显得像机器秒回。
timezone — 时区
timezone: "Asia/Shanghai" # 设置时区
code_execution — 代码执行
code_execution:
enabled: true
timeout: 300 # Python 脚本超时秒数
web_search — 网页搜索
web_search:
backend: "firecrawl" # firecrawl | duckduckgo | google | searxng
firecrawl_api_key: ""
firecrawl_api_url: "" # 自建 Firecrawl 地址
browser — 浏览器自动化
browser:
backend: "local" # local | browserbase | browseruse | camofox
# Browserbase 配置
browserbase_api_key: ""
browserbase_project_id: ""
tts — 文字转语音
tts:
provider: "edge" # edge(免费默认)| elevenlabs | openai | kokoro | fish
elevenlabs_api_key: ""
voice: "" # 声音名称
stt — 语音转文字
stt:
enabled: true
provider: local # local(faster-whisper)| groq | openai
local:
model: base # tiny | base | small | medium | large-v3
privacy — 隐私
privacy:
redact_secrets: true # 日志自动脱敏
reasoning_effort — 推理力度
reasoning_effort: "medium" # none | minimal | low | medium | high | xhigh
环境变量 (.env)
位于 ~/.hermes/.env ,存放所有 API 密钥。
主要提供商密钥
环境变量 用途 OPENROUTER_API_KEY OpenRouter ANTHROPIC_API_KEY Anthropic (Claude) DEEPSEEK_API_KEY DeepSeek HF_TOKEN Hugging Face GLM_API_KEY z.ai / GLM KIMI_API_KEY Kimi / Moonshot MINIMAX_API_KEY MiniMax DASHSCOPE_API_KEY 阿里云 / DashScope COPILOT_GITHUB_TOKEN GitHub Copilot KILOCODE_API_KEY Kilo Code OPENCODE_ZEN_API_KEY OpenCode Zen OPENCODE_GO_API_KEY OpenCode Go AI_GATEWAY_API_KEY AI Gateway
可选功能密钥
环境变量 用途 FIRECRAWL_API_KEY 网页搜索/抓取 FIRECRAWL_API_URL 自建 Firecrawl 地址 BROWSERBASE_API_KEY 浏览器自动化 BROWSERBASE_PROJECT_ID Browserbase 项目 ID FAL_KEY 图像生成 (FLUX) ELEVENLABS_API_KEY ElevenLabs TTS VOICE_TOOLS_OPENAI_KEY OpenAI TTS + 语音转录 GROQ_API_KEY Groq Whisper (免费 STT) HONCHO_API_KEY Honcho 记忆后端 SUPERMEMORY_API_KEY Supermemory 记忆后端 TINKER_API_KEY RL 训练 WANDB_API_KEY Weights & Biases
AI 提供商配置
快速设置
# 交互式选择提供商和模型
hermes model
# 设置向导(可选 section: model|terminal|gateway|tools|agent)
hermes setup
# 查看当前配置
hermes config
支持的提供商一览
提供商 认证方式 说明 ** Nous Portal ** OAuth ( hermes login --provider nous ) Nous 官方订阅服务 ** OpenAI Codex ** OAuth ( hermes login --provider openai-codex ) ChatGPT OAuth ** GitHub Copilot ** OAuth / Token 需 GitHub 账号 ** Anthropic ** API Key 或 Claude Code OAuth Claude Pro/Max ** OpenRouter ** OPENROUTER_API_KEY 默认推荐,模型最多 ** DeepSeek ** DEEPSEEK_API_KEY 性价比高 ** z.ai / GLM ** GLM_API_KEY 智谱 AI ** Kimi / Moonshot ** KIMI_API_KEY 月之暗面 ** MiniMax ** MINIMAX_API_KEY MiniMax ** 阿里云 ** DASHSCOPE_API_KEY 通义千问 ** Hugging Face ** HF_TOKEN 开源模型 ** Google / Gemini ** GOOGLE_API_KEY Gemini ** xAI / Grok ** XAI_API_KEY Grok ** OpenAI ** OPENAI_API_KEY GPT 系列 ** Azure OpenAI ** 自定义端点 企业版 ** Ollama ** 本地 (localhost:11434) 零配置本地模型 ** vLLM ** 自定义端点 高性能 GPU 服务 ** 自定义端点 ** config.yaml 配置 任何 OpenAI 兼容 API
本地模型配置
** Ollama(零配置): **
model:
default: "ollama/qwen2.5:32b"
base_url: "http://localhost:11434/v1"
api_key: "ollama"
context_length: 32768
** vLLM: **
model:
default: "vllm/meta-llama/Llama-3.1-70B-Instruct"
base_url: "http://localhost:8000/v1"
api_key: "vllm"
context_length: 32768
OpenRouter 路由配置
provider_routing:
sort: "throughput" # "price"(默认)| "throughput" | "latency"
# only: ["anthropic"] # 只用这些提供商
# ignore: ["deepinfra"] # 跳过这些提供商
# order: ["anthropic", "google"] # 按此顺序尝试
# data_collection: "deny" # 排除可能存储/训练数据的提供商
快捷方式:模型名加 :nitro = 按吞吐量排序,加 :floor = 按价格排序。
备用模型 (Fallback)
fallback_model:
provider: openrouter
model: anthropic/claude-sonnet-4
# base_url: "" # 自定义端点
# api_key_env: "" # 自定义端点的 API Key 环境变量名
主模型失败时自动切换,每会话最多触发一次。
自定义/命名端点
model:
custom_providers:
local:
name: "本地 Ollama"
base_url: "http://localhost:11434/v1"
api_key: "ollama"
api_mode: openai
work:
name: "公司代理"
base_url: ""
api_key: "secret-key"
api_mode: openai
会话中切换: /model custom:local:qwen-2.5
终端后端配置
后端类型对比
后端 适用场景 隔离性 local 本地开发,直接访问系统 无 docker 需要环境隔离 容器级 ssh 远程服务器 远程机器 modal Serverless GPU 云端隔离 singularity HPC 集群 容器级 daytona 云端沙箱 云端隔离
Docker 凭证自动转发
terminal:
backend: docker
docker:
credential_forwarding: true # 自动转发 Docker Hub、GHCR 等凭证
持久 Shell
terminal:
persistent_shell: true # 保留环境变量、cd 状态等
消息网关 (Messaging Gateway)
启动与管理
hermes gateway # 前台运行
hermes gateway setup # 交互式配置各平台
hermes gateway install # 安装为用户服务
sudo hermes gateway install --system # Linux 开机自启系统服务
hermes gateway start # 启动
hermes gateway stop # 停止
hermes gateway status # 状态
支持的平台
平台 语音 图片 文件 线程 流式 Telegram ✅ ✅ ✅ ✅ ✅ Discord ✅ ✅ ✅ ✅ ✅ Slack ✅ ✅ ✅ ✅ ✅ WhatsApp — ✅ ✅ — ✅ Signal — ✅ ✅ — ✅ Email — ✅ ✅ ✅ — Matrix ✅ ✅ ✅ ✅ ✅ 企业微信 (WeCom) ✅ ✅ ✅ — ✅ 飞书 (Feishu) ✅ ✅ ✅ ✅ ✅
安全配置
** 推荐:白名单模式 **
# 在 .env 中
TELEGRAM_ALLOWED_USERS=123456789,987654321
DISCORD_ALLOWED_USERS=123456789012345678
** DM 配对模式(免配置 ID): ** 未知用户 DM 时收到一次性配对码,管理员批准后才能使用:
hermes pairing approve telegram XKGH5N7P
hermes pairing list # 查看待审批
hermes pairing revoke telegram XKGH5N7P # 撤销
会话重置策略
// ~/.hermes/gateway.json
{
"reset_by_platform" : {
"telegram" : { "mode" : "idle" , "idle_minutes" : 240 },
"discord" : { "mode" : "idle" , "idle_minutes" : 60 }
}
}
策略 默认 说明 daily 4:00 AM 每天固定时间重置 idle 1440 分钟 空闲 N 分钟后重置 both 组合 任一条件触发即重置
工具集 (Toolsets)
hermes tools # 交互式启用/禁用
hermes tools list # 列出所有工具集
hermes tools enable NAME # 启用
hermes tools disable NAME # 禁用
工具集 功能 web 网页搜索与内容提取 browser 浏览器自动化 terminal Shell 命令执行 file 文件读写/搜索/补丁 code_execution 沙箱 Python 执行 vision 图像分析 image_gen AI 图像生成 tts 文字转语音 skills 技能浏览与管理 memory 持久记忆 session_search 搜索历史对话 delegation 子代理任务分发 cronjob 定时任务管理 clarify 向用户提问澄清
⚠️ 工具集变更后需要 /reset 开启新会话才能生效,以保护提示词缓存。
技能系统 (Skills)
hermes skills list # 查看已安装技能
hermes skills browse # 浏览技能市场
hermes skills search QUERY # 搜索
hermes skills install ID # 安装
hermes skills config # 按平台启用/禁用
hermes skills check # 检查更新
hermes skills update # 更新过时技能
hermes skills tap add REPO # 添加 GitHub 仓库作为技能源
会话中加载技能: /skill 名称 或启动时预加载: hermes -s 名称
技能遵循渐进式披露模式,只在需要时加载,最小化 token 消耗。
记忆系统 (Memory)
内置记忆
Hermes 默认使用基于文件的记忆系统: memories/MEMORY.md — 长期记忆(Agent 自行管理) memories/USER.md — 用户画像 每日日志 memory/YYYY-MM-DD.md
外部记忆后端
支持 Honcho、Mem0、OpenViking、Hindsight、Holographic、RetainDB、ByteRover 等。
hermes memory setup # 配置记忆提供商
hermes honcho setup # 配置 Honcho
MCP 服务器集成
hermes mcp serve # 将 Hermes 作为 MCP 服务器运行
hermes mcp add NAME --url URL # 添加 HTTP 传输的 MCP 服务器
hermes mcp add NAME -- command CMD # 添加 stdio 传输的 MCP 服务器
hermes mcp remove NAME # 移除
hermes mcp list # 列出已配置
hermes mcp test NAME # 测试连接
hermes mcp configure NAME # 按工具筛选
MCP 服务器支持 stdio 和 HTTP 两种传输方式,可接入 GitHub、数据库、文件系统等外部工具。
多实例配置 (Profiles)
运行多个独立的 Hermes 实例,各自有独立的配置、会话、技能和记忆。
hermes profile list # 列出所有 Profile
hermes profile create NAME # 创建(--clone 克隆当前,--clone-all 克隆全部)
hermes profile use NAME # 设为默认
hermes profile delete NAME # 删除
hermes profile show NAME # 查看详情
hermes profile export NAME # 导出为 tar.gz
hermes profile import FILE # 从归档导入
使用: hermes -p 名称 或 hermes profile use 名称 设为默认后直接用 hermes 。
定时任务 (Cron)
hermes cron list # 列出任务
hermes cron create "30m" # 每 30 分钟
hermes cron create "0 9 * * *" # 每天 9:00
hermes cron edit ID # 编辑
hermes cron pause ID # 暂停
hermes cron resume ID # 恢复
hermes cron run ID # 立即触发
hermes cron remove ID # 删除
任务可关联技能、指定投递目标(消息平台/本地文件)、设置执行次数。
语音配置 (STT/TTS)
语音转文字 (STT)
消息平台的语音消息自动转录。 提供商 费用 配置 faster-whisper(本地) 免费 pip install faster-whisper Groq Whisper 免费额度 设置 GROQ_API_KEY OpenAI Whisper 付费 设置 VOICE_TOOLS_OPENAI_KEY
stt:
enabled: true
provider: local
local:
model: base # tiny | base | small | medium | large-v3
文字转语音 (TTS)
提供商 环境变量 免费 Edge TTS 无需配置 ✅ 默认 ElevenLabs ELEVENLABS_API_KEY 免费额度 OpenAI VOICE_TOOLS_OPENAI_KEY 付费 Kokoro(本地) 无需配置 ✅ Fish Audio FISH_AUDIO_API_KEY 免费额度
语音命令: /voice on — 语音到语音 /voice tts — 始终输出语音 /voice off — 关闭
安全与审批
Tirith 安全检查
security:
tirith_enabled: true # 启用终端命令安全检查
命令审批模式
approvals:
mode: manual # manual | smart | off
manual :每个可疑命令都需用户确认 smart :辅助 LLM 判断风险,低风险自动放行 off :完全跳过(危险!仅限沙箱环境)
CLI 快捷模式: hermes --yolo 跳过所有审批。
网站黑名单
security:
website_blocklist:
enabled: true
domains:
- "*.internal.company.com"
- "admin.example.com"
支持精确域名、通配子域名( .xxx )、TLD 通配( .local )。
上下文压缩
当对话接近 token 限制时自动压缩:
compression:
enabled: true
threshold: 0.50 # 50% 时触发
target_ratio: 0.20 # 压缩到 20%
也可配置独立的压缩模型(用便宜模型做压缩节省成本):
compression:
model: "google/gemini-2.5-flash"
provider: "openrouter"
常用命令速查
CLI 全局参数
hermes # 交互聊天(默认)
hermes -q "问题" # 单次查询
hermes -c # 继续上次会话
hermes -r SESSION_ID # 恢复指定会话
hermes -w # git worktree 隔离模式
hermes -s 技能名 # 预加载技能
hermes -p 配置名 # 使用指定 Profile
hermes --yolo # 跳过危险命令审批
会话内斜杠命令
命令 功能 /new 新会话 /model [提供商:模型] 查看/切换模型 /config 查看配置 /provider 查看提供商信息 /tools 管理工具集 /skills 搜索/安装技能 /skill 名称 加载技能到当前会话 /cron 管理定时任务 /voice on|off|tts 语音模式 /yolo 切换审批绕过 /usage Token 用量 /rollback [N] 回滚文件检查点 /retry 重发最后一条消息 /undo 删除最后一条对话 /compress 手动压缩上下文 /reload-mcp 重载 MCP 服务器 /help 帮助 /quit 退出
配置管理
hermes config # 查看当前配置
hermes config edit # 编辑 config.yaml
hermes config set KEY VAL # 设置单个值
hermes config path # 打印配置文件路径
hermes config env-path # 打印 .env 路径
hermes config check # 检查缺失/过时的配置项
hermes config migrate # 用新配置选项更新
hermes doctor [--fix] # 检查依赖和配置
故障排查
模型/提供商问题
hermes doctor # 检查配置和依赖
hermes login # 重新认证 OAuth 提供商
# 检查 .env 是否有正确的 API Key
工具不可用
hermes tools — 检查工具集是否对当前平台启用 某些工具需要环境变量(检查 .env ) /reset 开始新会话后生效
语音不工作
检查 stt.enabled: true 确认提供商: pip install faster-whisper 或设置 API Key 重启网关
技能不显示
hermes skills list — 确认已安装 hermes skills config — 检查平台启用状态 显式加载: /skill 名称 或 hermes -s 名称
网关问题
grep -i "failed to send|error" ~/.hermes/logs/gateway.log | tail -20
更改不生效
更改类型 生效方式 工具/技能 /reset 开始新会话 网关配置 /restart 重载网关 代码修改 重启 CLI 或网关进程